﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using PBOffice.DAL;
using PBOffice.BLL;

public partial class position : System.Web.UI.Page
{
    Position pos = new Position();
    //List<Position> posList = new List<Position>();
    List<v_DepPosition> posList = new List<v_DepPosition>();
    PositionManager posManager = new PositionManager();
    OrganManager organManager = new OrganManager();
    TreeViewManager tvManager = new TreeViewManager();
    protected void Page_Load(object sender, EventArgs e)
    {
        //职位管理页面首次加载
        if (!IsPostBack)
        {
            tvManager.tv_Load(tv);       //加载机构树信息
        }
    }
    /// <summary>
    /// 选中节点变化事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void tvDep_SelectedNodeChanged(object sender, EventArgs e)
    {
        tvManager.tv_SelectedNodeChanged(tv);      //展开当前选中节点
        if (tv.SelectedNode.Parent != null)           //非一级节点：即部门节点
        {
            int depNo = int.Parse(tv.SelectedValue.ToString());      //部门编号
            posList = posManager.ShowPosInfoByDepNo(depNo);          //根据部门编号查询职位信息
            PositionBind();   //绑定职位信息
        }
        else                                         //一级节点：即机构节点
        {
            int organNo = int.Parse(tv.SelectedValue.ToString()); //机构编号   
            posList = posManager.ShowPosInfoByOrganNo(organNo);     //根据机构编号查询职位信息
            PositionBind();   //绑定职位信息

        }
            
    }
    //搜索按钮单击事件
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        string posId = txtPosition.Text.Trim();
        posList=posManager.ShowPosInfoByPosId(posId);    //根据职位名称搜索职位信息
        PositionBind();    //绑定职位信息
    }
    /// <summary>
    /// 绑定职位信息
    /// </summary>
    private void PositionBind()
    {
        if (posList.Count > 0)
        {
            gvPosition.DataSource = posList;                         //为数据控件绑定数据源（职位信息）
            gvPosition.DataBind();
        }
    }
    //添加按钮单击事件
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (tv.SelectedNode.Parent != null)
        {
            pos.PosId = txtPosition.Text.Trim();       //职位名称
            int posDepNo = int.Parse(tv.SelectedValue.ToString());  //所属部门编号
            bool result = posManager.AddPosInfo(pos,posDepNo);
            if(result==true)
                Page.ClientScript.RegisterClientScriptBlock(typeof(string), "OK", "alert('添加成功！')", true);
            else
                Page.ClientScript.RegisterClientScriptBlock(typeof(string), "Error", "alert('添加失败！')", true);
             //tvManager.tv_SelectedNodeChanged(tv);      //刷新选中节
             if (tv.SelectedNode.Parent != null)           //非一级节点：即部门节点
             {
                 int depNo = int.Parse(tv.SelectedValue.ToString());      //部门编号
                 posList = posManager.ShowPosInfoByDepNo(depNo);            //根据部门编号查询职位信息
                 PositionBind();   //绑定职位信息
             }
             else                                         //一级节点：即机构节点
             {
                 int organNo = int.Parse(tv.SelectedValue.ToString()); //机构编号   
                 posList = posManager.ShowPosInfoByOrganNo(organNo);     //根据机构编号查询职位信息
                 PositionBind();   //绑定职位信息

             }
        }
        else
        {
            Page.ClientScript.RegisterClientScriptBlock(typeof(string),"Error","alert('请将职位信息添加到部门中！')",true);
        }
        txtPosition.Text = "";
    }
}